Transforming Shapes by Modifying Shape Geometries
The functions described in this section perform the calculations necessary to achieve common matrix transformations of shapes. They are equivalent to the functions that modify transform mappings as described in the previous section, "Transforming Shapes by Modifying Transform Mappings" beginning on page 6-58; however, the functions in this section can perform their transformations by directly modifying a shape's geometry rather than altering its transform's mapping:
(Note also that the function
GXMoveShape
alters a shape's geometry to move it by a specified horizontal and vertical offset.GXMoveShapeTo
alters a shape's geometry to move it to a specified position.GXScaleShape
alters a shape's geometry to scale it by specified horizontal and vertical factors around a specified origin.GXRotateShape
alters a shape's geometry to rotate it by a specified number of degrees around a specified origin.GXSkewShape
alters a shape's geometry to skew it by specified horizontal and vertical factors around a specified origin.GXMapShape
alters a shape's geometry by applying a specified mapping matrix to it.
GXSetShapeBounds
works in the same manner as the other functions listed here; it modifies a shape's geometry to effect a scaling operation. However,GXSetShapeBounds
is described in the geometric operations chapter of Inside Macintosh: QuickDraw GX Graphics.)When applied to a shape object, each of these functions performs its transformation in one of two ways:
- If the shape's
gxMapTransformShape
attribute is cleared, these functions apply their mapping operations directly to the points of the shape object's geometry. In this case, the shape's transform mapping is unaffected.- If the shape's
gxMapTransformShape
attribute is set, these functions apply their mapping operations by altering the mapping property of the shape's transform object, in the manner of the transform-altering functions described in the previous section. In this case, the shape's geometry is unaffected.
Subtopics
- GXMoveShape
- GXMoveShapeTo
- GXScaleShape
- GXRotateShape
- GXSkewShape
- GXMapShape